1. java/com/example/dailyfitnesstracker/MainActivity.java
   package com.example.dailyfitnesstracker;

    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    import androidx.appcompat.app.AppCompatActivity;

    public class MainActivity extends AppCompatActivity {

        private EditText stepsInput;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            stepsInput = findViewById(R.id.steps_input);
            Button calculateCaloriesButton = findViewById(R.id.calculate_calories_button);

            calculateCaloriesButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String stepsText = stepsInput.getText().toString();
                    if (stepsText.isEmpty()) {
                        Toast.makeText(MainActivity.this, "Please enter your steps", Toast.LENGTH_SHORT).show();
                    } else {
                        int steps = Integer.parseInt(stepsText);
                        Intent intent = new Intent(MainActivity.this, CaloriesActivity.class);
                        intent.putExtra("steps", steps);
                        startActivity(intent);
                    }
                }
            });
        }
    }
  1. res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   android:padding="16dp"
   android:gravity="center"
   android:background="@color/green">

   <TextView
     android:id="@+id/app_title"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:gravity="center"
     android:padding="24dp"
     android:text="Daily Fitness Tracker"
     android:textSize="32sp"
     android:layout_gravity="center_horizontal"
     android:textColor="@color/white" />

   <EditText
     android:id="@+id/steps_input"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="Enter your steps"
     android:inputType="number"
     android:layout_margin="44dp"
     android:padding="16dp"
     android:textSize="24sp"
     android:minHeight="60dp"
     android:background="@color/white"
     android:textColor="@color/black" />

   <Button
     android:id="@+id/calculate_calories_button"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_margin="24dp"
     android:background="@android:color/black"
     android:minHeight="60dp"
     android:padding="16dp"
     android:text="Calculate Calories"
     android:textColor="@color/white"
     android:textSize="24sp" />
</LinearLayout>
  1. java/com/example/dailyfitnesstracker/CaloriesActivity.java
package com.example.dailyfitnesstracker;

 import android.os.Bundle;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.TextView;
 import android.widget.Toast;
 import androidx.appcompat.app.AppCompatActivity;

 public class CaloriesActivity extends AppCompatActivity {
    private EditText weightInput;
    private EditText ageInput;
    private TextView caloriesBurned;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_calories);

           weightInput = findViewById(R.id.weight_input);
           ageInput = findViewById(R.id.age_input);
           caloriesBurned = findViewById(R.id.calories_burned);

           Button calculateButton = findViewById(R.id.calculate_button);
           Button backButton = findViewById(R.id.back_button);

           calculateButton.setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   int steps = getIntent().getIntExtra("steps", 0);
                   if (steps == 0) {
                       Toast.makeText(CaloriesActivity.this, "Please enter steps in the main screen", Toast.LENGTH_SHORT).show();
                       finish(); // Navigate back to MainActivity
                       return;
                   }

                   int weight = Integer.parseInt(weightInput.getText().toString());
                   int age = Integer.parseInt(ageInput.getText().toString());
                   double calories = calculateCalories(weight, age, steps);
                   caloriesBurned.setText("Calories Burned: " + Math.round(calories));
               }
           });

           backButton.setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   finish(); // Navigate back to MainActivity
               }
           });
       }

       private double calculateCalories(int weight, int age, int steps) {
           // MET value for walking at moderate speed (e.g., 3.5 METs)
           double met = 3.5;
           // Average step length in miles (e.g., 2,000 steps per mile)
           double stepsPerMile = 2000;
           // Convert steps to miles
           double miles = steps / stepsPerMile;
           // Adjust the MET value based on age (example adjustment, you can refine this)
           double ageFactor = 1 - (age - 20) * 0.001;
           // Calories burned per mile = METs * weight (lbs) * miles * ageFactor
           double caloriesPerMile = met * weight * miles * ageFactor;
           return caloriesPerMile;
       }
   }
  1. res/layout/activity_calories.xml
  <?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:orientation="vertical"
       android:padding="16dp"
       android:gravity="center"
       android:background="@color/green">

       <TextView
           android:id="@+id/calories_burned"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_margin="12dp"
           android:padding="16dp"
           android:text="Calories Burned: 0"
           android:textColor="@color/white"
           android:textSize="34sp" />

       <EditText
           android:id="@+id/weight_input"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_margin="12dp"
           android:background="@color/white"
           android:hint="Enter your weight (lbs)"
           android:inputType="number"
           android:minHeight="60dp"
           android:padding="16dp"
           android:textColor="@color/black"
           android:textSize="24sp" />

       <EditText
           android:id="@+id/age_input"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_margin="12dp"
           android:background="@color/white"
           android:hint="Enter your age"
           android:inputType="number"
           android:minHeight="60dp"
           android:padding="16dp"
           android:textColor="@color/black"
           android:textSize="24sp" />

       <Button
           android:id="@+id/calculate_button"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_margin="24dp"
           android:background="@android:color/black"
           android:minHeight="60dp"
           android:padding="16dp"
           android:text="Calculate"
           android:textAlignment="textStart"
           android:textColor="@color/white"
           android:textSize="24sp" />

       <Button
           android:id="@+id/back_button"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_margin="24dp"
           android:background="@android:color/black"
           android:minHeight="60dp"
           android:padding="16dp"
           android:text="Back"
           android:textAlignment="textStart"
           android:textColor="@color/white"
           android:textSize="24sp" />
   </LinearLayout>
  1. res/values/colors.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="green">#4CAF50</color>
        <color name="white">#FFFFFF</color>
        <color name="black">#000000</color>
    </resources>

Author

UL